﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using Nop.Core.Domain.Shipping;
using Nop.Web.Framework;

namespace Nop.Admin.Models.Logistics
{
    public class LogisticsRoutePackageModel
    {
        public LogisticsRoutePackageModel()
        {
            AvailableDestinationLocations = new List<SelectListItem>();
        }

        public int PackageId { get; set; }

        public ShippingStatus Status { get; set; }

        public int OriginLocationId { get; set; }

        public int? DestinationLocationId { get; set; }

        public int? WarehouseId { get; set; }

        [Range(0, LogisticsRoutePlanningModel.ReservedOrder)]
        public int? OriginLocationOrder { get; set; }

        [Range(0, LogisticsRoutePlanningModel.ReservedOrder)]
        public int? DestinationLocationOrder { get; set; }

        public string OriginAddress { get; set; }
        public string OriginType { get; set; }

        public string DestinationAddress { get; set; }
        public string DestinationType { get; set; }

        public string WarehouseAddress { get; set; }

        public IList<SelectListItem> AvailableDestinationLocations { get; set; }

        public bool? Removed { get; set; }

        public TimeSpan? TimeElapsedSinceOrdered { get; set; }
        public string TimeElapsedSinceOrderedStr { get; set; }

        public string LatestPackageNoteContent { get; set; }
        public string Reference { get; set; }

        public bool OverSize { get; set; }

        public DateTime? ReadyTime { get; set; }
        public string ReadyTimeStr { get; set; }

        public DateTime? PickupEndTime { get; set; }
        public string PickupEndTimeStr { get; set; }

        public int OrderKindId { get; set; }
        [NopResourceDisplayName("Admin.Orders.List.OrderKind")]
        public string OrderKindStr { get; set; }
        //add on
        [NopResourceDisplayName("Admin.Logistics.Common.Fields.AddOn")]
        public string Attribute { get; set; }

        public string PickUpTimeShow { get; set; }
    }
}
